<?PHP


// Pas d'accès direct à ce fichier, vérification de l'existence de la variable définie dans le fichier qui l'appelle
if (!isset($SECURITE)){exit();}

// L'utilisateur connecté est-il un administrateur ?
$admin=false;

if (moodle_isadmin($USER->id))
   {$admin=true;}

if (!$admin) // Cela signifie qu'il s'agit d'un enseignant sinon c'est un administrateur via l'outil d'administration
{$fiche_moodle=$USER;} // Sinon la variable fiche_moodle est déjà défini par le choix de l'utilisateur par un administrateur

// Vérification que la personne connectée est une personne autorisée
if (!$admin AND !access_cours($USER->username))
{exit();}
 
// Affiche du lien si la personne autorisée
if ($CONF_acces_creation_cours AND $admin==false)
{
 echo "<p><a href='index.php?page=cours/creation_cours' class='ui-state-default ui-corner-all lien_padding'>Créer un espace sur Moodle <img src='includes/images/btn_ajouter.png' alt='Ajouter un espace' title='ajouter'/></a></p>";
}

      
// Liste des cours de la personne
$courses=moodle_get_my_courses($fiche_moodle->id);

// Libélés des catégories Moodle
$displaylist = moodle_list_categories();

// Initialisation de quelques variables
$fin_table=""; // Sert à fermer les tableaux à chaque changement de catégories
$cpt=1;
$cpt_cours=1; // Compteur du nombre d'espaces sur moodle de la personne
$categorie_courante=-1;
$au_moins_un=false;



////////////////////
// Bouton contact //
////////////////////
if (!$admin)
{
  echo '<div style="text-align:right;">
  <button class="point padding ui-state-default ui-corner-all ui-state-error" id="button-contact" type="button">Un doute, un problème, une question : Contactez nous par téléphone ou mail en cliquant ici</button>  	 	 
  </div>';
}

///////////////////////////////////////////////////  
// Pour tous les cours de la personne courante : //
///////////////////////////////////////////////////

foreach($courses as $cours)
{

  // Récupération des infos du cours courant
  $course = moodle_get_record_course($cours->id);
  
  $au_moins_un=true; // Cette personne a au moins un cours dans moodle
  $cours_a_valider=false; // Est-ce un cours à valider pour le changement d'année ?
  $inscription_auto=false; // S'agit-il d'un cours avec une ou plusieurs inscriptions automatiques ?
  $aucun_etudiant=false; // Y a-t-il des étudiants dans ce cours ?
  
   // S'il s'agit d'un cours valide dans une catégorie valide
 if (verif_validite_category($course->category) AND verif_validite_course($course->id))
 {
    
  //////////////////////////////////////////////////////////////
  // Si on change de catégorie on écrit la nouvelle catégorie //
  //////////////////////////////////////////////////////////////
 
  if ($course->category!=$categorie_courante)
  {	
    echo $fin_table;
    echo "<br /><h2>".$displaylist[$course->category];
    if ($admin) // Ajout de l'ID moodle de la catégorie
    {echo " <span class='padding ui-state-error'>(".$course->category.")</span>";}
    echo "</h2>";
    $categorie_courante=$course->category;
    echo '<table class="ui-widget ui-widget-content" >';
    echo '<tr class="ui-widget-header">';
    echo "<th width='30%'><b>Espace</b></th>";
    echo "<th width='20%'><b>Enseignant(s)</b></th>";
    echo "<th width='30%'><b>Méthode d'inscription</b></th>";
    if ($admin OR $CONF_changement_annee) // Affichage de la colonne changement d'année que si c'est un administrateur ou que cette fonctionnalité est activé dans le fichier de config
    {echo "<th width='20%'><b>Changement d'année</b></th>";}
    echo "</tr>";
    $fin_table="</table>";
  }
  
  // Contenu du tableau
  echo "<tr>";
  

/////////////////////////////////////////////////////////////
// 1ère colonne - Nom de l'espace et informations diverses //
/////////////////////////////////////////////////////////////

  echo "<td>";
  // Nom du cours et lien vers moodle et les paramètres du cours
  if ($admin)
     {echo "<b><a href='index.php?page=cours/cours_fiche&amp;id=".$course->id."'>".$course->fullname."</a></b>";} // Nom de l'espace
  else
      {echo "<b>".$course->fullname."</b>";} // Nom de l'espace}
      
  echo " (<a href='".$CFG->wwwroot."/course/view.php?id=".$course->id."' target='_blank'>".$course->id."</a>";
  if ($admin OR $CONF_acces_parametres)
  {
     echo " - ";
     if (!$CONF_acces_parametres){echo "<span class='ui-state-error'>";}
     echo "<a href='".$CFG->wwwroot."/course/edit.php?id=".$course->id."' target='_blank'>Paramètres</a>";
     if (!$CONF_acces_parametres){echo "</span>";}
  }
  echo ")";
  
 
  // Date de création
  echo "<br /><br />Date de création : <b>".date("d-m-Y",$course->timecreated)."</b>";
  
  // Les étudiants de l'espace
  $etudiants=moodle_get_etudiants($course->id);
  echo "<br />Nb d'étudiants : ";
  echo "<span id='etud".$course->id."'>";
  if (!is_array($etudiants))
    {echo "<b>Aucun</b>";$aucun_etudiant=true;}
  else
    {echo "<a href='javascript:void(0);' onclick='";
    ?>
    javascript:
    	
	$("#etudiants").dialog({
		autoOpen: true,
		width: 950,
		height: 550,
		modal: true,
		title: "Etudiants",
		buttons: {
			"Terminer": function() { 
				$(this).dialog("close"); 
			}
		}
	});
	$("#etudiants").html("<center><br />Veuillez patienter ...<br /><br /><img src=\"includes/images/ajax-loader.gif\" alt=\"patientez\" /></center>");
	$("#etudiants").dialog("open");
    $("#etudiants").load("utilisateurs/fiche_cours_moodle_etudiants.php",{id_cours:<?PHP echo $course->id;?>});
    <?PHP
    echo "'><b>".count($etudiants)."</b></a>";
    }
  echo "</span>";
  if ($admin)
  {
    echo "<br /><span class='ui-state-error'>";
    // Nb d'accès au cours pour la personne
    echo "Nb accès au cours : <b>".moodle_get_log_user_view_course($fiche_moodle->id,$course->id)."</b>";
    // Date de dernier accès au cours pour la personne
    echo "<br />Dernier accès : <b>".moodle_get_log_last_access($fiche_moodle->id,$course->id)."</b>";
    echo "</span>";  
  }
  if ($course->visible==0)
  {echo "<br /><span style='font-size: x-small' class='ui-state-error'>Espace caché non disponible pour les étudiants</span>";}

  			
  echo "</td>";
  
  
////////////////////////////////////////////
//Colonne 2 : Les enseignants de l'espace //
////////////////////////////////////////////

  $fiche_moodles_enseignants=moodle_get_enseignants($course->id);
  echo "<td><div id='enseignant".$cpt_cours."'>";
  $br="";
  
  $responsable_present=false;
  $liste_responsables=$separator="";
  

  if ($fiche_moodles_enseignants) // si y'en a au moins 1 
  {
      // Pour chaque enseignant de l'espace
    foreach ($fiche_moodles_enseignants as $fiche_moodle_enseignant)
    { 
      $fiche_moodle_courant= $br.$fiche_moodle_enseignant->firstname." ".$fiche_moodle_enseignant->lastname;
      $nb_connection=moodle_get_log_user_view_course($fiche_moodle_enseignant->id,$course->id);
      echo '<br /><span id="ens'.$fiche_moodle_enseignant->id.'-'.$course->id.'">';
      // Est-ce un responsable du cours ?      
      if (verif_responsable($fiche_moodle_enseignant->id,$course->id)) 
      {
        // C'est un responsable on le fait ressortir en gras
        echo "<b>".$fiche_moodle_courant."</b>";
        
        if ($admin) // Afficher le nombre de connexion à moodle et la possibilité de mettre en responsable ou non (réservé admin)
        {
          if (count($fiche_moodles_enseignants)>1) // Y'a plus d'un enseignant dans cet espace possibilité de le rendre NON responsable
          {
           // Possibilité de le rendre NON-Responsable
           ?>
           <a href='javascript:void(0);' onclick='$("#ens<?PHP echo $fiche_moodle_enseignant->id.'-'.$course->id;?>").load("utilisateurs/responsable_modif.php" , {cours:"<?PHP echo $course->id;?>", user:"<?PHP echo $fiche_moodle_enseignant->id;?>"});'><img src="includes/images/btn_supprimer.png" /></a>
           <?PHP 
          }
        }
        $responsable_present=true; // Y'a au moins un responsable dans ce cours
        $liste_responsables.=$fiche_moodle_courant."<br />";
        $separator=";";
      }
      else // Ce n'est pas un responsable
      {
        echo $fiche_moodle_courant; // On affiche son nom
        if ($admin) // Possibilité de mettre en responsable
        {
           ?>
           <a href='javascript:void(0);' onclick='$("#ens<?PHP echo $fiche_moodle_enseignant->id.'-'.$course->id;?>").load("utilisateurs/responsable_modif.php" , {cours:"<?PHP echo $course->id;?>", user:"<?PHP echo $fiche_moodle_enseignant->id;?>"});'><img src="includes/images/btn_ajouter.png" /></a>
           <?PHP
        }
      }
      echo "</span>";
      if ($admin) // Afficher le nombre de connexion à moodle
         {echo " <span class='ui-state-error'>(".$nb_connection.")</span>";}
      
    }
  }
  echo "</div>";
  
  // Aucun responsable pour ce cours :
  if (!$responsable_present and $admin)
     {echo "<br /<span class='padding ui-state-error'> PAS DE RESPONSABLE</span>";}
  
  echo "</td>";

  
/////////////////////////////////////////////////  
// Colonne 3 - Les Correspondances de l'espace //
/////////////////////////////////////////////////

  echo "<td id='corres".$course->id."'>";

  // Initialisation des variables
  $POINT_corres_n=false; // Pas de correspondance pour l'année courante (N), sers pour savoir si y'a des correspondance année N pour le changement d'année
  $liste=""; // contiendra la liste des correspondances qui sera affichée
  $inscription_auto=false; // Existe-t-il au moins une correspondance pour ce cours
    
  // S'agit-il d'un cours exclus ou d'un cours appartenant à une catégorie exclus ?  
  if (verif_validite_category($course->category) AND verif_validite_course($course->id))
  {  
    // Cherchons tous les types de correspondances
    $liste_correspondance_types=liste_correspondance_types();
    
    foreach ($liste_correspondance_types as $type) // Pour tous les types ...
    {	
      $type=new correspondance_types($type);
      $correspondances = liste_correspondances(0,$type->id,'',$course->id); // Quels sont les correspondances de ce type pour cet espace ?
      
      
      foreach ($correspondances as $correspondance) // Pour toutes les correspondances trouvées
      {
        $correspondance=new correspondances($correspondance);
        
        // Récupérons l'année de la correspondance
        $annee=recup_correspondance_annee($type->code,$correspondance->code);
        
        // Est-ce une correspondance valable pour l'année en cours ?
        if ($annee==$CONF_annee_en_cours)
           {$POINT_corres_n=true;}
        
        $libele_code= recup_correspondance_libele_code($type->code,$correspondance->code);
        if ($libele_code!="")// Si c'est une correspondance non factice
        {
          $liste.= $libele_code;
          if ($annee!=0)
          {$liste.=" (".$annee."/".($annee+1).")";}
  
          if ($correspondance->date_effective>time())
          {
           // Si la correspondance n'est pas encore active on précise la date de début
           $liste.= "<span style='font-style: italic'> (Après le ".date("j/m/Y", $correspondance->date_effective).")</span>";
          }
          $liste.="<br />";
          $inscription_auto=true;
        }
      }
    }
  
      
      if (!$inscription_auto)
      {
        echo "<p><b>Utilisation de clé</b> : </p>";
        echo "<p>N° cours : <b>".$course->id."</b>";
        echo "<br />Clé : <b>".$course->password."</b>";
        echo "</p>";
      }
      else
      {
        echo "<p><b>Inscription automatique pour</b> : </p>";
        echo $liste;    
        echo "<p style='font-size:smaller; text-align:right;top-margin:20px;'>";
        echo "<span style='font-style:italic;'>D'autres étudiants peuvent être inscrits en leur communiquant</span> le ";
        echo "N° : <b>".$course->id."</b>";
        echo " et la clé : <b>".$course->password."</b></p>";
      }
  }
  else
  {
   echo '<p>Le service TICE gère les inscriptions sur cet espace.</p>';
  }
  
  echo "</td>";

  
////////////////////////////////////////////////////////////
// Colonne 4 : Changement d'année, validation de l'espace //
////////////////////////////////////////////////////////////

  // Affichage de la colonne changement d'année que si c'est un administrateur ou que cette fonctionnalité est activé dans le fichier de config                                                          
  if ($CONF_changement_annee OR $admin) 
  {
    // Variable :
    $reinitialisation_annee_en_cours=false; // Considérons que la réinitialisation n'a pas encore été faite
    $cours_a_valider=false; // Considérons que y'a rien à valider pour l'utilisateur connecté
        
    echo "<td id='annee".$course->id."'>";
    // Vérifier si le changement d'année est activé pour les enseignants, dans le cas contraire on prévient l'administrateur
    if (!$CONF_changement_annee)
    {
     echo "<span class='ui-state-error'>Non disponible pour les enseignants</span>";
    }
     
    // Recherche si la réinitialisation a déjà été faite pour l'année en cours si oui c'est réglé pour ce cours
    $critere->objet="='Reinitialisation'";
    $critere->id_objet="='".$course->id."'";
    $critere->action="='".$CONF_annee_en_cours."'";
    $liste_manip=liste_tracking($critere);
    
    if ($liste_manip!=false) // On a trouvé une réinitialisation de l'année en cours
    {                                
      $reinitialisation_annee_en_cours=true;
      $reinitialisation_track="<p class='moindre'>";
      $br="";
      foreach ($liste_manip as $manip)
      {
        $manip=new changement_annee_tracking($manip);
        $date_manip=$manip->date;
        $reinitialisation_track.="$br Validé le ".date("j/m/Y", $date_manip)." par ";
        
        $who=moodle_get_complete_user_data($manip->user);
        $reinitialisation_track.=$who->firstname." ".$who->lastname;
        if (moodle_isadmin($who->id))
           {$reinitialisation_track.=" (Administrateur)";}
        $br="<br />";
      }
      $reinitialisation_track.="</p>";
      echo "<p class='ui-priority-primary'>Espace prêt pour ".($CONF_annee_en_cours+1)."/".($CONF_annee_en_cours+2)."</p>";
      echo $reinitialisation_track;
    }
    else // La réinitialisation n'a pas encore été faite, proposons là à la personne si elle est responsable
    {
        
       // Sauf si c'est un espace que nous gérons
       if (!verif_validite_category($course->category) OR !verif_validite_course($course->id))
       {
          echo '<p>Cet espace est géré différemment, il s\'agit sans doute d\'un espace collaboratif qui ne possède pas de "vrais étudiants" <b>ou bien</b> cet espace <u>est géré directement par le '.$CONF_nom_service.'</u></p>';
       }
       else
       {
          if (!verif_responsable($fiche_moodle->id,$course->id)) // Si ce n'est pas lui le responsable
          {
            if ($liste_responsables!="") // S'il y a d'autres responsables, On affiche leurs noms
            {
              echo "<p>Cet espace est géré par votre/vos collègue/s : </p>"; // On affiche leurs noms
              echo "<p id='enseignant1'>".$liste_responsables."</p>";
            }
          }
          else // C'est lui le responsable on lui propose de valider son espace
          {
          
           // Sauf si cet espace n'est pas valide il est géré par le service TICE
           if (!verif_validite_category($course->category) OR !verif_validite_course($course->id))
           {
              echo '<p>Cet espace est géré différemment, il s\'agit sans doute d\'un espace collaboratif qui ne possède pas de "vrais étudiants" <b>ou bien</b> cet espace <u>est géré directement par le '.$CONF_nom_service.'</u></p>';
           }
           else // C'est l'utilisateur qui gère cet espace
           {
             $cours_a_valider=true;       
             // Si c'est un espace où y'a une correspondance N on lui demande à partir de quand les étudiants devront être inscrits
             if ($inscription_auto)
             {
              $today=date("d/m/Y");
              echo "<p class='padding ui-state-highlight'>";
              echo 'Les nouveaux étudiants seront inscrits à partir du : ';
              echo '<input type="text" id="datepicker'.$cpt_cours.'" value="'.$today.'">';
              echo '<br /><br /><span class="ui-icon ui-icon-arrow-1-e" style="float: left; margin-right: 0.3em;"></span>';                      
              echo '<a href="#" onclick="reinitialise('.$course->id.', '.$cpt_cours.', 1); return false;">Cliquez ici pour valider cet espace pour '.($CONF_annee_en_cours+1).'/'.($CONF_annee_en_cours+2).'</a>';                      
              echo '</p>';
              
             }
             else // Sinon c'est un espace avec utilisation de clé, il le valide sans qu'on lui demande de date
             {
              echo "<p class='padding ui-state-highlight'>";
              echo '<span class="ui-icon  ui-icon-arrow-1-e" style="float: left; margin-right: 0.3em;"></span>';
              echo '<a href="#" onclick="reinitialise('.$course->id.', '.$cpt_cours.',0,'.$course->category.'); return false;">Cliquez ici pour valider cet espace pour '.($CONF_annee_en_cours+1).'/'.($CONF_annee_en_cours+2).'</a>';
              echo '<input type="hidden" id="datepicker'.$cpt_cours.'" value="0">';
              echo '</p>';       
             }
             // Message pour prévenir l'utilisateur que la manipulation peut durer longtemps si y'a beaucoup d'étudiant
             if (count($etudiants)>100 AND $cours_a_valider)
             {
              echo "<p class='moindre'>Cet espace possède beaucoup d'étudiants, la manipulation peut durer 1 à 2 minutes, soyez patient/e</p>";
             }
           }
           
          }
      }
		  if ($admin) 
		  {
		     // Si on a pas proposé de réinitialiser le cours à l'enseignant, on le propose à l'administrateur
         if (!$cours_a_valider)
		     {
           if ($inscription_auto)
           {
            $today=date("d/m/Y");
            echo "<p class='padding ui-state-error'>";
            echo 'Les nouveaux étudiants seront inscrits à partir du : ';
            echo '<input type="text" id="datepicker'.$cpt_cours.'" value="'.$today.'">';
            echo '<br /><br /><span class="ui-icon ui-icon-arrow-1-e" style="float: left; margin-right: 0.3em;"></span>';                      
            echo '<a href="#" onclick="reinitialise('.$course->id.', '.$cpt_cours.', 1); return false;">Cliquez ici pour valider cet espace pour '.($CONF_annee_en_cours+1).'/'.($CONF_annee_en_cours+2).'</a>';                      
            echo '</p>';
            
           }
           else // Sinon c'est un espace avec utilisation de clé, il le valide sans qu'on lui demande de date
           {
            echo "<p class='padding ui-state-error'>";
            echo '<span class="ui-icon  ui-icon-arrow-1-e" style="float: left; margin-right: 0.3em;"></span>';
            echo '<a href="#" onclick="reinitialise('.$course->id.', '.$cpt_cours.',0); return false;">Cliquez ici pour valider cet espace pour '.($CONF_annee_en_cours+1).'/'.($CONF_annee_en_cours+2).'</a>';
            echo '<input type="hidden" id="datepicker'.$cpt_cours.'" value="0">';
            echo '</p>';       
           }		     
		     }
		     // Réinitialisation factice pour l'administrateur
		     echo "<p class='padding ui-state-error'>";
         echo '<span class="ui-icon  ui-icon-arrow-1-e" style="float: left; margin-right: 0.3em;"></span>';
         echo '<a href="#" onclick="reinitialise_factice('.$course->id.'); return false;">Considérer l\'espace comme réinitialisé</a>';
		     echo '<input type="hidden" id="datepicker'.$cpt_cours.'" value="0">';
         echo '</p>';		  
		  }      
      
    }
      
    // Vérification que l'espace de l'année en cours contient au moins un étudiant, 
    //sinon c'est plutôt bizarre que personne n'a accéder cette année à l'espace
    if ($aucun_etudiant AND $admin AND !$reinitialisation_annee_en_cours)
    {
     echo "<p class='padding ui-state-error'>Espace valide ? car pas d'étudiant et correspondance(s) ".$CONF_annee_en_cours." existante(s)</p>";
    }
    echo "</td>"; // Fermeture de la 4ème colonne
  }
  
  // Fermeture de la ligne pour cet espace
  echo "</tr>";
  
  $cpt_cours++; // Compteur de cours incrémenté
} //Fin de la verification de cours/categorie pris en compte
} // Cours suivant
// Vérifions que la personne possède au moins un cours
if ($au_moins_un)
{echo $fin_table;}
else
{echo "<p>Vous ne possédez aucun espace en tant qu'enseignant</p>";}

?>

<div id="etudiants">
</div>

<div id="bidon">
</div>

<div id="contact" style="display:none;">
  <p class="padding ui-state-default">Par téléphone</p>
  <p>
    <?PHP echo $CONF_nom_contact;?> : <?PHP echo $CONF_tel_contact;?>
  </p>
  
  <p class="padding ui-state-default">Par mail</p>
  <p>à <u><?PHP echo $CONF_mail_contact;?></u> ou en écrivant votre message directement ici : </p>
  
  <!-- On commence le formulaire pour avoir les cases à cocher dedans-->
  <form id="question" name="question" action="">
  
  <textarea name="message" id="message" cols="50" rows="6"></textarea><br />
  
  <?PHP
  //On recupere toutes ses courses
  $courses_enseignant = moodle_get_my_courses($fiche_moodle->id);
  
  //Le compteur sert a afficher ou non le message du choix du cours s'il est au moins une fois responsable
  $i=1;
    
  //On consulte tous les cours de l'enseignant
  foreach ($courses_enseignant as $course) { 
    //On affiche que les courses où il est responsable
   if (verif_responsable($fiche_moodle->id,$course->id)){
  
       //On affiche le message que s'il y a un cours où il est responsable et que la première fois
      if($i==1){
        echo "<br />Votre question concerne les espaces suivants : <br /><br />";
      }
    	echo "<input type='checkbox' name='choix[]' value='".$course->id."' />".$course->fullname."<br />";
      $i=$i+1;
    }
  }
  
  ?>
  <br />
    <input type="button" name="btn1" id="btn1" value="Envoyer" onclick="envoie(question);" />
  </form>

</div>
